package cn.wp.ewallet.wmps.dao;

import cn.wp.ewallet.wmps.model.entity.ProdOrderRelDo;
import cn.wp.ewallet.wmps.model.entity.PurchasedProdOrderRelDoo;

import java.math.BigDecimal;
import java.util.List;

/**
 * 理财订单-数据访问层
 * Created by zhangyongli on 2020/01/08
 */
public interface ProdOrderRelDao {

    /**
     * 根据账户名称查询理财订单
     * @param accountId
     * @return
     */
    List<ProdOrderRelDo> selectProdOrderRelByAccountId(String accountId);

    /**
     * 查询冻结数量
     * @param accountId
     * @return
     */
    BigDecimal selectFrozenAmount(String accountId);

    /**
     * 插入理财账单
     * @param prodOrderRelDo
     */
    void insertProdOrderRel(ProdOrderRelDo prodOrderRelDo);

    /**
     * 根据订单id查询理财产品订单
     * @param prodOrderId
     * @return
     */
    ProdOrderRelDo selectProdOrderRelByProdOrderId(String prodOrderId);

    /**
     * 更新
     * @param prodOrderRelDo
     */
    void updateProdOrderRelDo(ProdOrderRelDo prodOrderRelDo);

    /**
     * 读取生效的订单日期
     * @return
     */
    List<ProdOrderRelDo> selectProdOrderRels();

    /**
     * 根据账户ID和订单状态查询订单信息
     * @param accountId
     * @param orderStatus
     * @return
     */
    List<ProdOrderRelDo> selectProdOrderRelListByAccountIdAndOrderStatus(String accountId, String orderStatus);

    /**
     * 更具订单状态查看所有的订单列表
     * @param orderStatusWaiting
     * @return
     */

    List<ProdOrderRelDo> selectListByOrderStatus(String orderStatusWaiting);

    /**
     * 查询理财产品详情
     * @param prodOrderRelId
     * @return
     */
    PurchasedProdOrderRelDoo selectProdOrderRelDetailByProdOrderRelId(String prodOrderRelId);

    /**
     * 查看够买理财产品总额
     * @param accountId
     * @param prodTypeRegular
     * @return
     */

    BigDecimal selectSumPurchaseYeldByAccountAndType(String accountId, String prodTypeRegular);
}